算法的时间效率
算法的时间效率
对算法概念部分的同一问题的另一种解法,代码如下:
# 如果 a+b+c=1000, 且a^2+b^2=c^2 (a, b, c为自然数), 如果求出所有a,b,c可能的组合
import time
start_time = time.time()
for a in range(0, 1001):
for b in range(0, 1001):
c = 1000 - a - b
if a**2 + b**2 == c**2:
print(f'a: {a}, b: {b}, c: {c}')
end_time = time.time()
cost_time = end_time - start_time
print(f'花费的时间为: {cost_time}')
a: 0, b: 500, c: 500
a: 200, b: 375, c: 425
a: 375, b: 200, c: 425
a: 500, b: 0, c: 500
花费的时间为: 0.3011956214904785
运行时间一定程度上反映算法的优劣,但仅靠运行时间,不一定客观准确,如何衡量?
假定执行算法每一个基本操作的时间是固定的一个时间单位,那么有多少个基本操作就代表会花费多少时间单位,由此可以忽略机器环境的影响而客观反映算法的时间效率
时间效率:代码执行总时间(T) = 操作步骤数量 * 操作步骤执行时间
T=(基本操作+子整体+大整体)*操作步骤执行时间
假定计算机执行算法每一个基本操作的时间是固定的一个时间单位
T=操作步骤总数=基本操作+子整体+大整体